package com.tzy.rabbitmq.helloworld;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.tzy.rabbitmq.utils.RabbitmqUtil;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeoutException;
/**
 * 生产者 - 简单模式
 */

public class Producer {
    public static void main(String[] args) throws IOException, TimeoutException {

        final Connection conn = RabbitmqUtil.getConnection();
        //创建TCP通道,相当于TCP中的虚拟连接
        Channel channel = conn.createChannel();
        //创建队列，声明并创建一个队列，如果队列已存在，则使用这个队列
        //第一个参数:队列名称ID
        //第个参数: 是否持久化， false对应不持久化数据，MQ停掉数据就会丢失
        //第三个参数:是否队列私有化，false则代表所有消费者都可以访问，true代表只有第次拥有它的消费者才能一直使用
        //第四个:是否自动删除，false代表连接停掉后不自动删除掉这个队列
        //其他额外的参数，null
        channel.queueDeclare("helloWorld",false,false,false,null);
        String message = "Java";
        //四个参数
        //exchange交换机，暂时用不到，在后面进行发布订阅时才会用到
        //队列名称
        //额外的设置 属性
        //最后一个参数是要传递的消息字节数组
//        channel.basicPublish("","helloWorld",null,message.getBytes());
        channel.basicPublish("","helloWorld",null,message.getBytes(StandardCharsets.UTF_8));
        //关闭连接
        channel.close();
        conn.close();
        System.out.println("--数据发送成功--");

    }
}
